#pragma once
#include <alibabacloud/oss/OssClient.h>
#include <string>
#include <memory>
#include <sstream>

class OssClientManager {
public:
    // 获取单例
    static OssClientManager* getInstance();

    // 初始化
    void init();

    // 上传文件
    bool uploadFile(const std::string& objectKey, const std::string& content);

    // 下载文件
    std::shared_ptr<std::iostream> downloadFile(const std::string& objectKey);

    // 析构函数
    ~OssClientManager();

private:
    // 私有构造函数，确保单例
    OssClientManager();

    static std::unique_ptr<OssClientManager> m_instance;
    std::unique_ptr<AlibabaCloud::OSS::OssClient> m_client;
};
